// 使用中间件处理请求
const express = require("express")
const app = express();
const path = require("path");

const static = path.resolve(__dirname,"../public")

const cookieParser = require('cookie-parser');
const tokenMiddleware = require("../utils/middle.js")
const corsMiddleware = require("../utils/corsMiddleware.js");
var cors = require('cors');
const whiteList =["http://127.0.0.1:5500","http://localhost:9527","http://localhost:5500"]

// 配置中间件

// 接口说明
/**
 * get->/api/student/:id 请求某个学生
 * get->/api/student 分页请求学生
 * post-> /api/student 新增学生
 * put ->/api/student/:id 更新学生
 * delete -> /api/student/:id 删除学生
 */


// 静态资源页面

app.use(express.static(static))
// console.log("到这")
// 这里是使用自己写的中间件
// app.use(corsMiddleware)
// 使用现成的cors中间件
app.use(cors({
    origin(origin,callback){
        if(whiteList.includes(origin)){
            callback(null,origin);
        }else{
            callback(new Error("not allowed"))
        }
    },
    credentials: true,
}))
app.use(cookieParser())
// 处理post请求体

app.use(express.urlencoded({extended:true}));

app.use(express.json());

// 应用token中间件
app.use(tokenMiddleware)
// // 测试错误处理
// app.get('/test',(req,res,next)=>{
//     console.log("handler1")
//     next()
// },()=>{
//     console.log("handler2")
//     throw 345
// })

// 具体实现由studentRouter进行
app.use("/login",require("./adminRouter"))
app.use("/api/student",require("./studentRouter"))

// 错误处理中间件
app.use(require('../utils/errorHandler'))
app.listen('9527',()=>{
    console.log("正在监听9527端口")
})